package com.flower.domain.vo.farmer;

import com.flower.domain.dto.farmer.FlowerEncyclopediaDTO;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 花卉百科详情VO
 */
@Data
public class FlowerEncyclopediaDetailVO {

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 花卉名称
     */
    private String name;

    /**
     * 学名
     */
    private String scientificName;

    /**
     * 别名
     */
    private String alias;

    /**
     * 科
     */
    private String family;

    /**
     * 属
     */
    private String genus;

    /**
     * 原产地
     */
    private String origin;

    /**
     * 适合播种的地域
     */
    private String rightPlace;

    /**
     * 介绍
     */
    private String introduction;

    /**
     * 特征
     */
    private String features;

    /**
     * 养护难度(1-5)
     */
    private Integer cultivationDifficulty;

    /**
     * 缩略图URL
     */
    private String thumbnail;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 数据来源(1:花农上传,2:爬虫)
     */
    private Integer dataSource;

    /**
     * 创建者ID
     */
    private Long creatorId;

    /**
     * 创建者名称
     */
    private String creatorName;

    /**
     * 状态(0:待审核,1:已发布)
     */
    private Integer status;

    /**
     * 浏览次数
     */
    private Long viewCount;

    /**
     * 生长环境
     */
    private FlowerGrowingEnvironmentVO growingEnvironment;

    /**
     * 生长阶段列表
     */
    private List<FlowerGrowthStageVO> growthStages;

    /**
     * 栽培方法列表
     */
    private List<FlowerCultivationMethodVO> cultivationMethods;

    /**
     * 图片列表
     */
    private List<FlowerImageVO> images;

    /**
     * 花的知识
     */
    private FlowerCurltureVO curltures;

    @Data
    public static class FlowerGrowingEnvironmentVO {
        /**
         * ID
         */
        private Long id;

        /**
         * 最低温度(℃)
         */
        private BigDecimal temperatureMin;

        /**
         * 最高温度(℃)
         */
        private BigDecimal temperatureMax;

        /**
         * 光照需求
         */
        private String lightRequirement;

        /**
         * 浇水需求
         */
        private String waterRequirement;

        /**
         * 土壤类型
         */
        private String soilType;

        /**
         * 湿度要求
         */
        private String humidity;

        /**
         * 施肥要求
         */
        private String fertilization;
    }

    @Data
    public static class FlowerGrowthStageVO {
        /**
         * ID
         */
        private Long id;

        /**
         * 阶段名称
         */
        private String stageName;

        /**
         * 阶段描述
         */
        private String stageDescription;

        /**
         * 持续时间
         */
        private String duration;

        /**
         * 护理要点
         */
        private String careTips;

        /**
         * 排序
         */
        private Integer sortOrder;

        /**
         * 阶段图片
         */
        private List<FlowerImageVO> images;
    }

    @Data
    public static class FlowerCultivationMethodVO {
        /**
         * ID
         */
        private Long id;

        /**
         * 方法名称
         */
        private String methodName;

        /**
         * 方法内容
         */
        private String methodContent;

        /**
         * 适宜季节
         */
        private String suitableSeason;

        /**
         * 排序
         */
        private Integer sortOrder;
    }

    @Data
    public static class FlowerImageVO {
        /**
         * ID
         */
        private Long id;

        /**
         * 生长阶段ID
         */
        private Long growthStageId;

        /**
         * 图片URL
         */
        private String imageUrl;

        /**
         * 图片类型(1:全株,2:花朵,3:叶片,4:果实,5:其他)
         */
        private Integer imageType;

        /**
         * 图片描述
         */
        private String description;

        /**
         * 是否主图(0:否,1:是)
         */
        private Integer isMain;

        /**
         * 排序
         */
        private Integer sortOrder;
    }

    @Data
    public static class FlowerCurltureVO {
        private String flowerLanguage;    // 花语
        private String poetry;            // 诗词典故
        private String culturalMeaning;   // 文化内涵
        private String literaryQuotations; // 文学典故
    }
} 